'use strict';

/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller, config } = app;
  router.get('/', controller.home.index);
  router.get('/hello', controller.helloword.index);
  // router.get('/api/v1/user', controller.user.api);

  // 单个路由注册中间件
  router.get('/api/v1/user', app.middleware.time({ threshold: 1 }), controller.user.api);

  // day 04 分页 访问 http://localhost:7001/api/v1/github-users?page=1&limit=2
  router.get('/api/v1/github-users', controller.user.getFollowers);

  // day 05 模板渲染 http://localhost:7001/user/list?page=1&limit=2
  router.get('/user/list', controller.user.getUserList);

  // day 06 RESTful 风格
  router.resources('books', '/books', controller.book);
  router.resources('users', '/users', controller.users);
  router.get('/user/arr', controller.user.testPlugin); // 测试自定义的 context 扩展插件 ok了

  // day 07 每日一句
  router.get('/one-ask', controller.article.getOnAsk);

  // day 08 401
  router.get('/401', controller.home.page401);

  // day 10 restful
  router.restful('restful', '/restful', controller.restful);

  /*
  [] // middleware 应用级中间件（开发者配置的中间件）
  [  // coreMiddleware 框架级中间件（egg 内置的中间件）
    'meta',
    'siteFile',
    'notfound',
    'static',
    'bodyParser',
    'overrideMethod',
    'session',
    'i18n',
    'eggLoaderTrace'
  ]
  */
  console.log(config.middleware);
  // 1.路由拆分 按文件
  require('./router/admin')(app);
  require('./router/article')(app);
  require('./router/upload')(app);

  // 2.egg-router-plus 自动引入
  const userRouter = app.router.namespace('/user');
  userRouter.get('user', '/:userId', app.controller.user.index);
};
